
function PageContextTree(settings){
	PageContext.call(this, settings);
	var _this = this; //把this保存下来，以后用_this代替this，这样就不会被this弄晕了
		
	/**
	 * 渲染tree
	 */
	this.afterRenderGrid = function(gridData){
	    
	};
	//this.removeItemAfter = function(ids){
	//	 if(!isNaN(ids)){
	//		pageContext.setDeleteClass($("#"+pageContext.setting.tableId+"_tr_"+ids),true);
	//	 }else{
	//		var array = ids.split(",");
	//		for (x in array)
	//		{
	//			var id = array[x];
	//			pageContext.setDeleteClass($("#"+pageContext.setting.tableId+"_tr_"+id),true);
	//		}
	//	}
	//}; 
	this.updateItemAfter = function(result,para){
		 _this.treeObj.updateNode(_this.getNode(result.data.id));
	 };
	 this.addItemAfter = function(result,para){
		 _this.treeObj.addNodes(_this.getNode(result.data.pId),result.data);
	 }; 
	 this.deleteItemAfter = function(id){
		 _this.treeObj.removeNode(_this.getNode(id));
	 };
	 this.removeItemAfter = function(id){
		  
	 };
	this.initTree = function(target,treeData,setting){
		var defaults = {
				check: {
					enable: true
				},
				data: {
					simpleData: {
						enable: true
					}
				} 
		};
		_this.treeSetting = $.extend( true,  {}, defaults, setting || {}); 
		_this.treeObj = $.fn.zTree.init(target, _this.treeSetting, treeData);
	};
	
	this.expandNode = function(id){
		_this.treeObj.expandNode(_this.getNode(id), true, false, true);
	}
	this.notExpandNode = function(id){
		_this.treeObj.expandNode(_this.getNode(id), false, true, true);
	}
	
	this.getChildNodes = function(id){
		var node = _this.getNode(id);
		var nodes = _this.treeObj.getNodesByFilter(function(node){
			return true;
		},false,node);
		return nodes;
	}
	
	/**
	 * 获取checked的节点
	 */
	this.getCheckedNodes = function(){
		var nodes = _this.treeObj.getCheckedNodes(true);
		var array = [];
		if(nodes && nodes.length>0){
			 for(n in nodes){
				 array.push(nodes[n]);
			 }
		}
		return array;
	};
	
	/**
	 * 获取选中的节点
	 */
	this.getSelectedNodes = function(){
		var nodes = _this.treeObj.getSelectedNodes();
		var array = [];
		if(nodes && nodes.length>0){
			 for(n in nodes){
				 array.push(nodes[n]);
			 }
		}
		return array;
	};
	/**
	 * 获取所有节点
	 */
	this.getNodes = function(){
		var nodes = _this.treeObj.getNodes();
		var array = [];
		if(nodes && nodes.length>0){
			 for(n in nodes){
				 array.push(nodes[n]);
			 }
		}
		return array;
	};
	
	this.getCheckedNodeIds= function(){
		var nodes = _this.treeObj.getCheckedNodes(true);
		var array = [];
		if(nodes && nodes.length>0){
			 for(n in nodes){
				 array.push(nodes[n].id);
			 }
		}
		return array;
	};
	
	
	/**
	 * 获取选中的节点
	 */
	this.getSelectedNodeIds = function(){
		var nodes = _this.treeObj.getSelectedNodes();
		var array = [];
		if(nodes && nodes.length>0){
			 for(n in nodes){
				 array.push(nodes[n].id);
			 }
		}
		return array;
	};
	
	/**
	 * 选中
	 */
	this.selectNode = function(id){
		var node = _this.getNode(id);
		this.treeObj.selectNode(node,false,false);
		this.expandNode(node.pId);
		node.selected = true;
		var allNodes = _this.getNodes();
		for(index in allNodes){
			if(allNodes[index].id != id){
				_this.cancelSelectedNode(allNodes[index].id);
			}
		}
	};
	/**
	 * 取消选中
	 */
	this.cancelSelectedNode = function(id){
		var node = _this.getNode(id);
		node.selected = false;
		this.treeObj.cancelSelectedNode(node,false,false);
		this.notExpandNode(node.pId);
	};
	
	/**
	 * 获取节点
	 */
	this.getNode = function(id){
		return this.treeObj.getNodesByParam("id", id, null)[0];
	};
}
